home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / asc2bin < prev    next >
Text File  |  1995-03-31  |  15KB  |  314 lines

  1. Path: seq!spell
  2. From: Detlef Mueller <detlef@mwhh.hanse.de>
  3. Subject:  v02i030:  asc2bin - ASC->BIN v1.1, Part01/01
  4. Newsgroups: comp.sources.hp48
  5. Followup-To: comp.sys.hp48
  6. Approved: spell@seq.uncwil.edu
  7.  
  8. Checksum: 2226323514 (verify with brik -cv)
  9. Submitted-by: Detlef Mueller <detlef@mwhh.hanse.de>
  10. Posting-number: Volume 2, Issue 30
  11. Archive-name: asc2bin/part01
  12.  
  13.  
  14. BEGIN_DOC asc2bin.doc
  15. Hi, out there.
  16.  
  17. In one of the articles in comp.sys.hp48 Chris Spell wrote, that he has
  18. problems downloading big `ASC only` programs.
  19.  
  20. Here is a little ASC-to-binary converter (written in ANSI C) for anybody who
  21. has the same problem or no UUDECODE.
  22.  
  23. Feed the program via stdin with an extracted ASC program, it will generate a
  24. downloadable output to stdout. The output file size is limited to ~32 kbytes
  25. (on UNIX no problem to change, but IMO not necessary :-).
  26.  
  27. The 'unsigned' data type is assumed to be at least 16 bit in size.
  28. ASCII character set is assumed.
  29.  
  30. I wrote the program using BORLAND C++ under MesS-DOS , but it shouldn't be
  31. a problem to port it to other compilers/machines (operating system dependend
  32. lines are marked).
  33.  
  34. CU,
  35.     8-), Detlef
  36.  
  37. P.S.    Sorry about the poor documentation and the low error checking. I've
  38.     neither time to write a serious doc, nor time to extend the program,
  39.     so if there are any questions or problems, feel free to mail me. DM
  40. END_DOC
  41.  
  42.  
  43. BEGIN_SRC asc2bin.c
  44. /* ASC2BIN - v 1.1 DM '91 - 
  45.    Usage: ASC2BIN < [input file] > [output file] 
  46. */
  47.  
  48. #include    <stdio.h>
  49. #include    <stdlib.h>
  50. #include    <ctype.h>
  51.  
  52. #include    <io.h>                /* MesS-DOS */
  53. #include    <fcntl.h>            /* MesS-DOS */
  54.  
  55. #define    MAXDTA    32766                /* MesS-DOS */
  56.  
  57. static void Error ( int f, char *err )
  58. {
  59.     fprintf( stderr,"\n%s\n", err ) ;
  60.  
  61.     if ( f )
  62.     exit( -1 ) ;
  63. }
  64.  
  65. static void PutNibb ( int nibb )
  66. {
  67.     static unsigned char
  68.     in[MAXDTA],            /* Input buffer */
  69.     *p = in ;            /* Pointer to input buffer */
  70.     static unsigned
  71.     crc = 0,            /* CRC value */
  72.     len = 0 ;            /* Count of nibbles in buffer */
  73.  
  74.     if ( nibb == -1 )            /* Flush input buffer */
  75.     {
  76.     if ( len <= 4 )
  77.         Error( 1, "Invalid string" ) ;
  78.  
  79.     if ( crc )
  80.         Error( 0, "CRC error !!! Be carefull ..." ) ;
  81.  
  82.     if ( len & 1 )
  83.         *(p - 2) &= 0x0F ;        /* Mask out 1st CRC nibble */
  84.  
  85.     printf( "HPHP48-E" ) ;        /* Binary download header */
  86.                     /* Flush input buffer to stdout */
  87.     for ( p = in, nibb = (len - 3) >> 1 ; nibb ; --nibb, ++p )
  88.         putc( *p, stdout ) ;
  89.  
  90.     return ;
  91.     }
  92.  
  93.     if ( ++len & 1 )
  94.     *p = nibb ;
  95.     else
  96.     *p++ |= nibb << 4 ;
  97.  
  98.     if ( len > MAXDTA )            /* Input to big .. */
  99.     Error( 1, "File to big ..." ) ;
  100.  
  101.     nibb = (crc ^ nibb) & 0x0F ;    /* Update CRC value */
  102.     crc  = (crc >> 4) ^ (nibb | (nibb << 7) | (nibb << 12)) ;
  103. }
  104.  
  105. void main ( void )
  106. {
  107.     int
  108.     i ;
  109.  
  110.     setmode( fileno( stdout ), O_BINARY ) ;    /* MesS-DOS */
  111.  
  112.     while ( (i = getc( stdin )) != '"' ) /* Search for start of str */
  113.     if ( i == EOF )
  114.         Error( 1, "No data found" ) ;
  115.  
  116.     while ( (i = getc( stdin )) != '"' )
  117.     if ( isxdigit( i ) )        /* Is hex-digit */
  118.         PutNibb( i - (i > '9' ? '7' : '0') ) ;
  119.     else
  120.     if ( i == EOF )
  121.         Error( 1, "Unexpected EOF" ) ;
  122.  
  123.     PutNibb( -1 ) ;            /* Flush input buffer */
  124.  
  125.     exit( 0 ) ;
  126. }
  127. END_SRC
  128.  
  129. [ I compiled this using bcc -ms.  If you have any problems let
  130.   me know -cgs ]
  131.  
  132. BEGIN_UU asc2bin.uue
  133. begin 644 asc2bin.exe
  134. M35K4`0\``P`@``T(___""8``````````/@````$`^S!J<@``````````````C
  135. M```````````````````````!````W@```!`!````````````````````````:
  136. M`````````````````````````````````````````````````````````````
  137. M`````````````````````````````````````````````````````````````
  138. M`````````````````````````````````````````````````````````````
  139. M`````````````````````````````````````````````````````````````
  140. M`````````````````````````````````````````````````````````````
  141. M`````````````````````````````````````````````````````````````
  142. M`````````````````````````````````````````````````````````````
  143. M`````````````````````````````````````````````````````````````
  144. M`````````````````````````````````````````````````````````````
  145. M``````````````````````"Z=P$NB18U`K0PS2&++@(`BQXL`([:HY(`C`:0Y
  146. M`(D>C`")+J@`Z#T!Q#Z*`(O'B]BY_W_\\J[C84,F.`5U]H#-@/?9B0Z*`+D!<
  147. M`-/C@\,(@^/XB1Z.`(S:*^J+/I(#@?\``G,'OP`"B3Z2`X''IH1R*`,^B@-RJ
  148. M(K$$T^]'.^]R&8,^D@,`=`>#/HH#`'4.OP`0.^]W!XO]ZP/IA`&+WP/:B1Z@R
  149. M`(D>I`"AD``KV([`M$I7S2%?T^?ZCM*+Y_LSP"Z.!C4"OV0$N::$*\_\\ZJTG
  150. M`,T:B1:6`(D.F``S[;AW`8[8OEX$OV0$Z.H`+HX>-0(NQ@;G`7(NQ@;6`0#_R
  151. M-H@`_S:&`/\VA`#H50)0Z"<#N'<!CMB^9`2_9`3HN``NCAXU`O\6'`+_%AX",
  152. M_Q8@`BZ.'C4"Z'(`,\"+\+DO``($@-0`1N+X+5P-=`FY&0"Z+P#HQ0"+[+1,7
  153. MBD8"S2&Y#@"Z2`#IP0`>N``US2&)'G0`C`9V`+@$-<TAB1YX`(P&>@"X!37-%
  154. M(8D>?`",!GX`N`8US2&)'H``C`:"`+@`)8S*CMJZ7`'-(1_#'K@`)<46=`#-]
  155. M(1\>N`0EQ19X`,TA'QZX!27%%GP`S2$?'K@&)<46@`#-(1_#M/^+UXO>.]]T4
  156. M%(`__W0*.&<!=P6*9P&+TX/#!NOH.]=T((O:'@<&@#\`Q@?_+HX>-0)T!R;_4
  157. M7P(?Z\4F_U<"'^N^P[1`NP(`S2'#N1X`NE8`+HX>-0+HZO^X`P!0Z/G^```!<
  158. M`%6+[/]V!KBP`%"X0@)0Z,,"@\0&@WX$`'0(N/__4.C<`5E=PU6+[(-^!/]TI
  159. M`^F+`(,^K@`$=PVXM0!0N`$`4.B^_UE9@SZL``!T#+C$`%`SP%#HJ_]96?<&0
  160. MK@`!`'0(BQZJ`(!G_@^XX@!0Z)`#6<<&J@!D!*&N`"T#`-'HB48$ZS'_!C("`
  161. M?12+'JH`B@>+'CP"_P8\`H@'M`#K$+@R`E"+'JH`B@=0Z&L#65G_3@3_!JH`-
  162. M@WX$`'7)ZVK_!JX`H:X`J0$`=`N+'JH`BD8$B`?K$8I&!+$$TN"+'JH`"`?_S
  163. M!JH`@3ZN`/Y_=@VXZP!0N`$`4.@*_UE9H:P`,T8$)0\`B48$BT8$L0?3X(M6C
  164. M!`O0BT8$L0S3X`O0H:P`L033Z#/"HZP`7<-5B^Q6N`"`4*`V`IA0Z#`%65GKX
  165. M$H/^_W4-N/L`4+@!`%#HM?Y96?\.(@)\#HL>+`+_!BP"B@>T`.L(N"("4.@6Z
  166. M"5F+\#TB`'7+ZS'VA!L!$G08@_XY?@6X-P#K`[@P`(O6*]!2Z);^6>L2@_[_S
  167. M=0VX"0%0N`$`4.A?_EE9_PXB`GP.BQXL`O\&+`**![0`ZPBX(@)0Z,`(68OP9
  168. M/2(`=:RX__]0Z%?^63/`4.@I`%E>7<-5B^R#/A@!('4%N`$`ZQ.+'A@!T>.+I
  169. M1@2)AV*$_P88`3/`7</#58OLZPJ+'A@!T>/_EV*$H1@!_PX8`0O`=>O_=@3HI
  170. MN?Q97<-5B^Q65XMV!`OV=07H;P#K9SET#G0%N/__ZU^#/`!\*?=$`@@`=0J+5
  171. MQ@4%`#E$"G46QP0``(O&!04`.40*=0B+1`B)1`KK,>LOBT0&`P1`B_@I/%>+.
  172. M1`B)1`I0BD0$F%#HD@6#Q`8[QW0.]T0"``)U!X%,`A``ZYXSP%]>7<-5B^Q,I
  173. M3%97QT;^``"_%`"^(@+K$O=$`@,`=`A6Z&/_6?]&_H/&$(O'3PO`=>>+1OY?P
  174. M7HOE7<-5B^RX<P=0_W8$_W8&C48(4.C`"EW#58OL3$Q65XM.!(O9@S\`?0B+X
  175. M1P8#!T#K"8O9BP>9,\(KPHOPB4;^B]GW1P)``'0"ZS*+V8M_"H,_`'TAZPM/^
  176. MB]^`/PIU`_]&_HO&3@O`=>[K$HO?1X`_"G4#_T;^B\9."\!U[HM&_E]>B^5=)
  177. MP@(`58OL5E>+=@2+?@I6Z+C^60O`=`6X___K1X/_`740@SP`?@M6Z&K_F2E&-
  178. M!AE6"(%D`E_^QP0``(M$"(E$"E?_=@C_=@:*1`284.CH!X/$"(/Z_W4*/?__;
  179. M=06X___K`C/`7UY=PU6+[(/L!%:+=@2*1`284.@N!%F)5OZ)1OR#/`!]#5;H#
  180. M"_^9`4;\$5;^ZPM6Z/[^F2E&_!E6_HM6_HM&_%Z+Y5W#58OLN','4+@R`E#__
  181. M=@2-1@90Z)4)7<-5B^Q6BW8&_PQ6BD8$F%#H!0!965Y=PU6+[%:+=@:*1@2B4
  182. MHH2#//]]-/\$BUP*_T0*H**$B`?W1`((`'0=@#ZBA`IT!X`^HH0-=0]6Z+S]:
  183. M60O`=`:X___IM`#IK`#W1`*0`'4']T0"`@!U!X%,`A``Z^*!3`(``8-\!@!T.
  184. M1(,\`'0+5NB%_5D+P'0"Z\>+1`;WV(D$BUP*_T0*H**$B`?W1`((`'09@#ZB'
  185. MA`IT!X`^HH0-=0M6Z%/]60O`=`+KE>M(@#ZBA`IU'_=$`D``=1BX`0!0N(P#8
  186. M4(I$!)A0Z',-@\0&/0$`=1BX`0!0N**$4(I$!)A0Z%L-@\0&/0$`=`KW1`(`+
  187. M`G4#Z6+_H**$M`!>7<-5B^Q6BW8$N#("4%;H]_Y965Y=PU6+[$Q,5E>+?@:+$
  188. M=@2)?O[W1`((`'0FZQI6BUX(_T8(B@>84.C+_EE9/?__=04SP.GR`(O'3PO`;
  189. M==_IY0#W1`)``'4#Z8,`@WP&`'1E.7P&<RB#/`!T"U;HB_Q9"\!T`NO,5_]V?
  190. M"(I$!)A0Z+\,@\0&.\=S`NNWZ:@`BP0#QWP:@SP`=0JX__\K1`:)!.L+5NA31
  191. M_%D+P'0"ZY17_W8(_W0*Z,(&@\0&BP0#QXD$`7P*ZW!7_W8(BD0$F%#H;PR#9
  192. MQ`8[QW,#Z6;_ZUB#?`8`=#SK,?\$?1:+7`K_1`I3BUX(_T8(B@=;B`>T`.L/=
  193. M5HM>"/]&"(H'4.CB_5E9/?__=0/I*_^+QT\+P'7(ZQ97_W8(BD0$F%#HPP&#]
  194. MQ`8[QW,#Z0S_BT;^7UZ+Y5W"!@!5B^Q65XMV!H-^!`!\$H-^!!1]#(M>!-'C3
  195. M@[]B`_]U!;@&`.LTB\8E`,"+^#O&=2:!_P#`=""+7@31XXNW8@.+7@31XXO&N
  196. M)?\_"\>)AV(#B\8E`,#K![@!`%#H>P1?7EW#H"8"F%#HK`19"\!U!H$F)`+_)
  197. M_;@``E#W!B0"``)T!;@!`.L",\!0,\!0N"("4.@X`(/$"*`V`IA0Z'@$60O`;
  198. M=0:!)C0"__VX``)0]P8T`@`"=`6X`@#K`C/`4#/`4+@R`E#H!`"#Q`C#58OL=
  199. M5E>+=@2+?@HY=`YU#(-^"`)_!H'__W]V!KC__^FF`(,^D`,`=0Z!_C("=0C'D
  200. M!I`#`0#K$X,^C@,`=0R!_B("=0;'!HX#`0"#/`!T$;@!`%`SP#/24%)6Z,O[+
  201. M@\0(]T0"!`!T!_]T".@0"UF!9`+S_\=$!@``B\8%!0")1`B)1`J#?@@"=#T+A
  202. M_W8YQP8<`D$+@WX&`'465^BO"UF)1@8+P'0'@4P"!`#K`^EM_XM&!HE$"HE$U
  203. M"(E\!H-^"`%U!8%,`@@`,\!?7EW#58OLN`$`4#/`,])04O]V!.A]`X/$"%W#4
  204. M58OL@>R*`%97BT8(0#T"`',%,\#IU@"+7@31X_>'8@,`@'02_W8(_W8&_W8$D
  205. MZ"(*@\0&Z;<`BUX$T>.!IV(#__V+1@:)1OB+1@B)1OSK5_]._(M>^/]&^(H'_
  206. MB$;[/`IU!,8$#4:*1ON(!$:-AG;_B]8KT('Z@`!\,XO6*]"+^E=0_W8$Z,L)'
  207. M@\0&B4;^.\=T%8-^_@!S!;C__^M,BT8(*T;\ZS_K0HV&=O^+\(-^_`!UG8V&U
  208. M=O^+UBO0B_J+P@O`=BA7C89V_U#_=@3HA`F#Q`:)1OX[QW02@W[^`',"Z[>+-
  209. M1@@#1OXKQ^L#BT8(7UZ+Y5W#5E>_!`"^(@+K$/=$`@,`=`56Z`/Y64^#QA`+,
  210. M_W7L7U[#58OLBT8$B]2!Z@`".\)S!Z.<`#/`ZPG'!I0`"`"X__]=PU6+[(M&J
  211. M!(M6!@,&G`"#T@"+R`O2=1"!P0`"<@H[S',&AP:<`.L)QP:4``@`N/__7<-5F
  212. MB^S_=@3HI/]97<-5B^R+1@294E#HM_]965W#58OL@^P$BUX$T>/WAV(#``)T5
  213. M!;@!`.M,N`!$BUX$S2%R/O;"@'4UN`%",\F+T<TA<BY24+@"0C/)B]'-(8E&W
  214. M_(E6_EI9<AFX`$+-(7(2.U;^<@EW!3M&_'("Z[<SP.L$4.A#`8OE7<-65[\4]
  215. M`+XB`NL3BT0")0`#/0`#=056Z`?X68/&$(O'3PO`=>9?7L-5B^Q6BW8$]T0"/
  216. M``)T`^C(__]T!HM$"(E$"E"*1`284.AW`H/$!HD$"\!^"(-D`M\SP.L>@SP`U
  217. M=0Z+1`(E?_X-(`")1`+K",<$``"#3`(0N/__7EW"`@!5B^Q6BW8$_P16Z`0`M
  218. M65Y=PU6+[%:+=@2#/`!^#?\,BUP*_T0*B@?IB0"#/`!\#O=$`A`!=0?W1`(!S
  219. M`'4)@TP"$+C__^MO@4P"@`"#?`8`=`Q6Z%3_"\!T`NOFZ\#W1`(``G0#Z!O_-
  220. MN`$`4+BDA%"*1`284.C,`8/$!@O`=2"*1`284.B4_ED]`0!T`NNOBT0")7_^X
  221. M#2``B40"ZZ7KHX`^I(0-=0?W1`)``'2Q@V0"WZ"DA+0`7EW#N"("4.A2_UG#$
  222. M58OL5HMV!`OV?!6#_EA^`[Y7`(DVE`.*A)8#F(OPZQ&+QO?8B_"#_B-_Y<<&C
  223. ME`/__XDVE`"X__]>7<("`%6+[+@`1(M>!,TADB6``%W#58OLBUX$T>.!IV(#,
  224. M__VT0HI&"HM>!(M."(M6!LTA<@+K!5#HC/^97<-5B^R#[")65P:+?@H>!XM>,
  225. M"(/[)'=8@/L"<E.+1@R+3@X+R7T1@'X&`'0+Q@4M1_?9]]B#V0"-=M[C#Y$KJ
  226. MTO?SD??SB!1&XPGK\2O2]_.(%$8+P'7UC4[>]]D#SOQ.B@0L"G,$!#KK`P)&P
  227. M!*KB[[``J@>+1@I?7HOE7<(,`%6+[%97BW8$BWX(@_\*=06+QIGK!(O&,])2Y
  228. M4/]V!E>P`5"P85#H6_]?7EW#58OL_W8&_W8$_W8(_W8*L`!0L&%0Z#__7<-5`
  229. MB^Q6BW8*_W8&_W8$_W8(5H/^"G4%N`$`ZP(SP%"P85#H&?]>7<-5B^Q65XS84
  230. MCL"+?@2+=@:+3@C1Z?SSI7,!I(M&!%]>7<-5B^R#[`165XM&"$`]`@!R#8M>:
  231. M!-'C]X=B`P`"=`4SP.F,`/]V"/]V!O]V!.B&`(/$!HE&_D`]`@!R#8M>!-'C2
  232. M]X=B`P"`=`6+1O[K8HM._HMV!AX'B_Z+WORL/!IT+3P-=`6JXO3K'.+P!E.X@
  233. M`0!0C4;]4/]V!.@[`(/$!EL'_(I&_:H[^W4"ZYGK(%.X`0!0]]D;P%!1_W8$L
  234. MZ"_^@\0(BUX$T>.!CV(#``);*_N77UZ+Y5W#58OLM#^+7@2+3@B+5@;-(7("+
  235. MZP10Z+']7<.*QN@"`(K"U!"&X.@"`(;@!)`G%$`GJL-5B^R![)8`5E?'1NX`=
  236. M`,=&[%``QT;J``#K1E>Y__\RP/*N]]%)7\,VB`5'_D[L=2]345(&C89J_ROXH
  237. MC89J_U!7_W8(_U8*"\!U!<=&Z@$`QT;L4``!?NZ-OFK_!UI96\,&_(V^:O^)#
  238. M?OR+?OR+=@:L"L!T$CPE=!$VB`5'_D[L?^[HK/_KZ>GF`XEV\*P\)73GB7[\P
  239. M,\F)3O*)3OZ(3O7'1OC__\=&]O__ZP&L,N2+T(O8@.L@@/M@<Q.*G_<#@_L72
  240. M=@/IF0/1XR[_IW`4Z8\#@/T`=_B#3OX!Z]"`_0!W[8-._@+KQ8#]`'?B@'[U^
  241. M*W0#B%;UZ[6#9O[?ZP2#3OX@M07KIX#]`'=-]T;^`@!U*8-._@BU`>N3Z40#X
  242. MBWX$-HL%@T8$`H#]`G,2"\!Y!O?8@T[^`HE&^+4#Z6__@/T$==>)1O;^Q>EB\
  243. M_X#]!'/*M03_1O;I5?^2+#"8@/T"=QFU`H=&^`O`?-'1X(O0T>#1X`/"`4;XV
  244. MZ3/_@/T$=9N'1O8+P'2UT>"+T-'@T>`#P@%&]ND7_X-._A#I9?^!3OX``8-F%
  245. M_N_I6?^W".L*MPKK"K<0L^D"VL9&]0"(5OLSTHA6^HM^!#:+!>L0MPK&1OH![
  246. MB%;[BWX$-HL%F4='B78&]T;^$`!T!3:+%4='B7X$C7Z["\!U+PO2=2N#?O8``
  247. M=2F+?OR+3OCC&H/Y_W05BT;^)0@`=`2R,.L"LB"*PN@)_N+YZ4G^@T[^!%)0&
  248. M5XK'F%"*1OI04^C8^Q8'BU;V"])_`^GQ`.G\`(A6^XEV!HU^NHM>!#;_-T-#\
  249. MB5X$]T;^(`!T$#:+%T-#B5X$%@?H>_VP.JH6!UKH<OTVQ@4`QD;Z`(-F_ON-X
  250. M3KHK^8?/BU;V.]%_`HO1Z9X`B78&B%;[BWX$-HL%@T8$`A8'C7Z[,N0VB06YN
  251. M`0#IL0")=@:(5ON+?@3W1OX@`'4--HL]@T8$`AX'"__K"S;$/8-&!`2,P`O'4
  252. M=04>![_P`^@S_3M.]G8#BT[VZW6)=@:(5ON+?@2+3O8+R7T#N08`5U&-7KM30
  253. M4K@!`"-&_E"+1OZI``%T";@(`(-&!`KK!X-&!`BX!@!0Z$\$%@>-?KOW1OX(0
  254. M`'08BU;X"])^$>C6_":`/2UU`4DKT7X#B5;RBD;U"L!T"B:`/2UT!$\FB`7H6
  255. MM/R+]XM^_(M>^+@%`"-&_CT%`'43BF;[@/QO=0V#?O(`?P7'1O(!`.L;@/QX#
  256. M=`6`_%AU$8-._D!+2X-N\@)]!<=&\@```T[R]T;^`@!U#.L&L"#H;?Q+.]E_X
  257. M]O=&_D``=`NP,.A<_(I&^^A6_(M6\@O2?B<KRBO:)HH$/"UT"#P@=`0\*W4'J
  258. M)JSH-_Q)2X?*XP>P,.@L_.+YA\KC$BO9)JPVB`5'_D[L?P/H'_SB\`O;?@F+%
  259. MR[`@Z`G\XOGI2?R)=@:+?@3W1OX@`'4+-HL]@T8$`AX'ZP<VQ#V#1@0$N%``%
  260. M*D;L`T;N)HD%]T;^$`!T!T=')L<%``#I"OR+=O"+?ORP)>B]^ZP*P'7X@'[LM
  261. M4'T#Z+C[!X-^Z@!T!;C__^L#BT;N7UZ+Y5W""`#'$+$0_!"\$"H1-Q%U$7P1I
  262. M@1'E$*H1B!&,$9`1)A+2$G82EA($%$`40!1`%-<0W1!5B^R+7@31X_>'8@,`H
  263. M"'03N`(`4#/`,])04O]V!.@&^8/$"+1`BUX$BTX(BU8&S2%R#U"+7@31XX&/;
  264. M8@,`$%CK!%#HD_A=PU97B_2+7`:#ZP1R#CL>6@1T!>A"`.L#Z`,`7U[#.1Y8+
  265. M!'0CBW<"]@0!=`:)-EH$ZR`[-E@$=`V+WNA4`(M'`J-:!.L-B]XSP*-8!*-:C
  266. M!*-<!%/H)O9;P_\/.QY8!'08BW<"BP2H`74/`P>)!(L_`_N)=0*+WNL#Z#(`P
  267. MBS\#^XL%J`%T`<,!!XOW`_")7`*+WXM_!CO?=`Z)/EP$BW<$B74$B7P&P\<&X
  268. M7`0``,.+-EP$"_9T$(M\!HE<!HE=!(E_!HEW!,.)'EP$B5\$B5\&PU97B_2+#
  269. M1`8+P'12!04`<C8E_O\]"`!S`[@(`(,^6`0`=!^+'EP$"]MT#8O3.0=S&HM?3
  270. M!CO:=?7H9@#K(>B*`.L<Z!P`ZQ<SP.L3B_"#Q@@Y-W/IZ&O__P>+PP4$`%]>#
  271. MPU`SP%!0Z&;U6ULE`0!T"3/24E#H6/5;6UA0,]M34.A-]5M;/?__=!2+V(D>4
  272. M6`2)'EH$6$")!X/#!(O#PULSP,-0,]M34.@F]5M;/?__=!:+V*%:!(E'`HD>)
  273. M6@180(D'@\,$B\/#6#/`PRD'B_,#-XO^`_A`B02)7`*)=0*#Q@2+QL.+[%-0G
  274. M45#H%?];B]@+P'0?'@?\B_B+=OZ+#(/&!%:#Z071Z?.EB4;^Z"3^6XM>_H/$1
  275. M!L.+PH/""#O1=S6+T3L>6@1U#XD'_P<#PU-0Z'OT6UOK'HO[`_B)70(KT"D7_
  276. MB_<#\HE\`D*)%8O+B]_H-_Z+V8/#!,-65U6+[(M>"(M&"@O`=#<+VW0M@^L$`
  277. MBP])B]"#P@6#XOZ#^@AS`[H(`#O*<@QW!8/#!.L(Z(?_ZP/H3_^+P^L-4.AE?
  278. M_NL&4^B0_3/`6UU?7L/_)EX$````````````````````````0F]R;&%N9"!#V
  279. M*RL@+2!#;W!Y<FEG:'0@,3DY,2!";W)L86YD($EN=&PN`$YU;&P@<&]I;G1E&
  280. M<B!A<W-I9VYM96YT#0I$:79I9&4@97)R;W(-"D%B;F]R;6%L('!R;V=R86T@5
  281. M=&5R;6EN871I;VX-"@``````````````````````````````````````````/
  282. M````````IH2FA````````````````&0$``````HE<PH`26YV86QI9"!S=')I)
  283. M;F<`0U)#(&5R<F]R("$A(2!"92!C87)E9G5L;"`N+BX`2%!(4#0X+44`1FEL7
  284. M92!T;R!B:6<@+BXN`$YO(&1A=&$@9F]U;F0`56YE>'!E8W1E9"!%3T8`````=
  285. M("`@("`@("`@(2$A(2$@("`@("`@("`@("`@("`@("`!0$!`0$!`0$!`0$!`L
  286. M0$!``@("`@("`@("`D!`0$!`0$`4%!04%!0$!`0$!`0$!`0$!`0$!`0$!`0$W
  287. M!$!`0$!`0!@8&!@8&`@("`@("`@("`@("`@("`@("`@(0$!`0"``````````T
  288. M`````````````````````````````````````````````````````````````
  289. M`````````````````````````````````````````````````````````````
  290. M```````````````````````````````````````````U!#4$-00```D"````D
  291. M`````````"("```*`@$````````````R`@```@("````````````0@(``$,"`
  292. M`P```````````%("``!"`@0```````````!B`@````#_````````````<@(`[
  293. M````_P```````````(("`````/\```````````"2`@````#_````````````"
  294. MH@(`````_P```````````+("`````/\```````````#"`@````#_````````&
  295. M````T@(`````_P```````````.("`````/\```````````#R`@````#_````%
  296. M`````````@,`````_P```````````!(#`````/\````````````B`P````#_&
  297. M````````````,@,`````_P```````````$(#`````/\```````````!2`P$@H
  298. M`B`"(`2@`J#_______________________________________\```T`````4
  299. M```0````$P("!`4&"`@(%!4%$_\6!1$"_________________P4%________/
  300. M_____________P__(P+_#_____\3__\"`@4/`O___Q/__________R/_____-
  301. M(_\3_P`H;G5L;"D``!04`105%!04%`(`%`,$%`D%!04%!04%!044%!04%!04G
  302. M%!04%`\7#P@4%!0'%!84%!04%!04%!0-%!04%!04%!04%!`*#P\/"`H4%`84J
  303. ?$@L.%!01%`P4%`T4%!04%!04```````````"`0D```D`)
  304. ``
  305. end
  306. END_UU
  307. --
  308. +-----------------------------------+---------------------------------------+
  309. |    Inside every large problem     |             Detlef Mueller            |
  310. |        is a small problem         |          detlef@mwhh.hanse.de         |
  311. |      struggling to get out.     ? |...!uunet!mcsun!unido!mcshh!mwhh!detlef|
  312. +-----------------------------------+---------------------------------------+
  313.  
  314.